1. Field of the Invention
The present invention relates to packet based communications and more specifically to devices, software, and methods for more efficiently packetizing data for transmission over a time slotted communication system.
2. Description of the Related Art
Many parts of the world do not have wide deployment of hard-wired Public Switched Telephone Networks (“PSTN”) or packet switched Internet networks. A wide variety of alternative access media, such as satellite communications, are often used in this areas.
FIG. 1 shows a conventional Voice Over Internet Protocol (VoIP) over satellite communication system 50. A voice endpoint 100 communicates with another voice endpoint 104 via a communication satellite 108. In this example, endpoints 100 and 104 generate packets 101 that are sent and received via satellite 108 through satellite access devices 102 and 106, respectively.
Access via satellite links is distinguished by several characteristics. One characteristic is an intrinsically large delay typically around 200-500 milliseconds due to the propagation delay required to reach satellite 108 in geosynchronous orbit. Another characteristic of the satellite data channel are predetermined transmit and receive windows 200 and 203, respectively, for receiving and transmitting packets 101. The transmit windows 200 and the receive windows 203 have a fixed time period 110 that is known by both the satellite access devices 102 and 106 and satellite 108.
The satellite access device 102 queues packets 101 for transmission while transmit window 200 is closed. Once the transmit window 200 opens, the satellite access device 102 transmits the previously queued packets 101 (typically 12 or 13 packets) and also transmits any other packets 101 that are received from the voice endpoint 100 before the close of the transmit window 200 (typically 2 or 3 packets). The communication satellite 108 works similarly, receiving and queuing packets 101 during the transmit windows 200 and relaying the queued packets 101 back to a destination satellite access device 106 during receive windows 203.
FIG. 2 shows in more detail how packets are transmitted in the VoIP over satellite system 50 shown in FIG. 1. A communication cycle Cx 224 includes continuously repeating fixed length transmit and receive time intervals. A transmit time interval Tx 223 represents the fixed time period for transmit windows 200, 201, and 202 in each communication cycle 224A-224C. A receive time interval Rx 225 represents the fixed time period for receive windows 203, and 204 in each communication cycle 224.
Packets 205-221 represent a packetized voice stream 230 generated by the voice endpoint 100 in FIG. 1 that is then transmitted by the satellite access device 102 to the other voice endpoint 104 via the satellite 108. In a first communication cycle 224A, packet 205, and any previously queued packets, are separately and individually transmitted via the satellite access device 102 at the opening of transmit window 200. Packets 206 and 207 are received from voice endpoint 100 after the opening of the transmit window 200 and are also transmitted before the close of transmit window 200.
Any packets received after the close of transmit window 200 are queued for separate transmissions during a next transmit window 201 in a next communication cycle 224B. For example, packets 208-212 are each packetized by the voice endpoint 100 and each separately transmitted by the satellite access device 102 at the start of the next transmit window 201. Subsequently received packets 213 and 214 that arrive before the close of the transmit window 201 are also transmitted during transmit window 201.
Packets 215-218 are received after the end of transmit window 201 and are therefore queued for transmission at the opening of a next transmit window 202 during communication cycle 224C. Packets 219 and 220 are received before the end of transmit window 202 and are therefore also transmitted during transmit window 202. Packet 221 is queued for transmission during a next transmit window not shown in FIG. 2.
Receive windows 203 and 204 work similarly. The communication satellite 108 in FIG. 1 is configured to transmit the individual packets previously received during transmit windows 200, 201 and 202 back to the satellite access devices 106 during receive windows 203 or 204.
Typically each packet 205-221 is formatted by the voice endpoint 100 with 40 bytes of overhead header data that includes 20 bytes for the IP header, 8 bytes for the User Datagram Protocol (UDP) header, and 12 bytes for the Real-time Transport Protocol (RTP) header. The packets 205-221 also each include a payload which can be as small as 20 bytes in the case of an 8 kilo-bits per second (kbps) Coder-Decoder (CODEC) such as specified in International Telecommunications union (ITU)-T G.729. Such high data overhead and small payload results in a poor utilization of satellite bandwidth.
The present invention address this and other problems associated with the prior art.